home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Utilities / Cron ƒ / cron commons / argc Builder.c next >
Encoding:
C/C++ Source or Header  |  1992-10-09  |  2.7 KB  |  114 lines  |  [TEXT/KAHL]

  1. /*    ——————————————————————————————————————————————————————————————————
  2.     
  3.     Filename: "argc Builder.c"
  4.     argc/argv argument construction and transmission code, written for 
  5.         THINK C 5.0
  6.     By Chris Johnson
  7.     Version of: Saturday, February 15, 1992 3:00 PM
  8.     
  9.     Distribute freely and without charge, but say something nice about 
  10.     the author when you use it.  Please send me a copy of any improve-
  11.     ments you make so they can be incorporated into future versions.
  12.     
  13.     ——————————————————————————————————————————————————————————————————
  14.     Internet:    chrisj@emx.utexas.edu
  15.     UUCP:        {husc6|uunet}!cs.utexas.edu!ut-emx!chrisj
  16.     BitNet:        chrisj@utxvm.bitnet
  17.     AppleLink:    chrisj@emx.utexas.edu@internet#
  18.     CompuServe:    >INTERNET:chrisj@emx.utexas.edu
  19.     US Mail:    Chris Johnson, 3311 Red River #305, Austin, TX 78705
  20.     ——————————————————————————————————————————————————————————————————    */
  21.  
  22.  
  23. #include "argc Builder.h"
  24.  
  25.  
  26.  
  27.  
  28. OSErr argcCreate(argcDesc)
  29. AEDesc                    *argcDesc;
  30. {
  31.     return (AECreateList(NULL, 0, FALSE, argcDesc));
  32. }
  33.  
  34.  
  35. OSErr argcDispose(argcDesc)
  36. AEDesc                    *argcDesc;
  37. {
  38.     return (AEDisposeDesc(argcDesc));
  39. }
  40.  
  41.  
  42. OSErr argcAddP(argcDesc, ArgStringP)
  43. AEDesc                    *argcDesc;
  44. StringPtr                ArgStringP;
  45. {
  46.     return (AEPutPtr(argcDesc, 0, typeChar, (Ptr) ArgStringP + 1, *ArgStringP));
  47. }
  48.  
  49.  
  50. OSErr argcAddC(argcDesc, ArgStringC)
  51. AEDesc                    *argcDesc;
  52. char                    *ArgStringC;
  53. {
  54.     long                    ArgStringLen;
  55.     char                    *ArgChar;
  56.     
  57.     ArgChar = ArgStringC;
  58.     
  59.     while (*ArgChar++ != '\0')
  60.         ;
  61.     
  62.     ArgStringLen = (ArgChar - ArgStringC) - 1;
  63.     
  64.     return (AEPutPtr(argcDesc, 0, typeChar, (Ptr) ArgStringC, ArgStringLen));
  65. }
  66.  
  67.  
  68. OSErr argcAddB(argcDesc, Buffer, BuffSize)
  69. AEDesc                    *argcDesc;
  70. Ptr                        Buffer;
  71. long                    BuffSize;
  72. {
  73.     return (AEPutPtr(argcDesc, 0, typeChar, Buffer, BuffSize));
  74. }
  75.  
  76.  
  77. OSErr argcSend(argcDesc, ProcessNumber)
  78. AEDesc                    *argcDesc;
  79. ProcessSerialNumber        *ProcessNumber;
  80. {
  81.     OSErr                    OSError;
  82.     AEAddressDesc            Target;
  83.     
  84.     OSError = AECreateDesc(typeProcessSerialNumber, (Ptr) ProcessNumber, sizeof(*ProcessNumber), &Target);
  85.     if (OSError == noErr) {
  86.         AppleEvent                argcEvent;
  87.         
  88.         OSError = AECreateAppleEvent(argcEventClass, argcEventID, &Target, kAutoGenerateReturnID, 0, &argcEvent);
  89.         if (OSError == noErr) {
  90.             
  91.             OSError = AEPutParamDesc(&argcEvent, argcKeyword, argcDesc);
  92.             if (OSError == noErr) {
  93.             //    AppleEvent                argcReplyEvent;
  94.                 
  95.             //    Note that we won't have to dispose of the reply event because
  96.             //    we specify kAENoReply when we send the original event.
  97.                 
  98.             //    OSError = AESend(&argcEvent, &argcReplyEvent, kAENoReply, kAENormalPriority, kAEDefaultTimeout, NULL, NULL);
  99.                 
  100.                 OSError = AESend(&argcEvent, NULL, kAENoReply, kAENormalPriority, kAEDefaultTimeout, NULL, NULL);
  101.             }
  102.             
  103.             AEDisposeDesc(&argcEvent);
  104.         }
  105.         
  106.         AEDisposeDesc(&Target);
  107.     }
  108.     
  109.     return (OSError);
  110. }
  111.  
  112.  
  113.  
  114.